package com.hoshiicloud.purchase.param;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * <p>
 * 修改参数
 * </p>
 *
 * @author campchen
 * @since 2019-05-15
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "修改", description = "修改")
public class PodetailUpdateParam implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键ID", required = true)
    @NotNull(message = "采购单详情id不能为空")
    private Long id;

    @ApiModelProperty(name = "poId", value = "采购单ID", dataType = "java.lang.Long", example = "")
    private Long poId;

    @ApiModelProperty(name = "spuName", value = "商品名称", dataType = "java.lang.String", required = true, example = "1")
    private String spuName;

    @ApiModelProperty(name = "skuName", value = "规格", dataType = "java.lang.String", example = "")
    private String skuName;

    @ApiModelProperty(name = "barCode", value = "商品条码", dataType = "java.lang.String", example = "")
    private String barCode;

    @ApiModelProperty(name = "packNo", value = "商品箱码", dataType = "java.lang.String", example = "")
    private String packNo;

    @ApiModelProperty(name = "spuNo", value = "sp uno", dataType = "java.lang.String", example = "")
    private String spuNo;

    @ApiModelProperty(name = "spuId", value = "spu id", dataType = "java.lang.Long", example = "")
    private Long spuId;

    @ApiModelProperty(name = "skuNo", value = "SKU NO", dataType = "java.lang.String", required = true, example = "1")
    private String skuNo;

    @ApiModelProperty(name = "skuId", value = "SKU ID", dataType = "java.lang.Long", required = true, example = "1")
    private Long skuId;

    @ApiModelProperty(name = "unit", value = "商品单位", dataType = "java.lang.String", example = "")
    private String unit;

    @ApiModelProperty(name = "sku", value = "规格", dataType = "java.lang.String", example = "")
    private String sku;

    @ApiModelProperty(name = "unitPrice", value = "单价", dataType = "java.lang.BigDecimal", example = "")
    private BigDecimal unitPrice;

    @ApiModelProperty(name = "quantity", value = "数量", dataType = "java.lang.Long", example = "")
    private Long quantity;

    @ApiModelProperty(name = "packQuantity", value = "采购包装数", dataType = "java.lang.Long", required = true, example = "1")
    private Long packQuantity;

    @ApiModelProperty(name = "packUnit", value = "采购包装单位", dataType = "java.lang.Long", required = true, example = "1")
    private Long packUnit;

    @ApiModelProperty(name = "innerQuantity", value = "内件数", dataType = "java.lang.String", required = true, example = "1")
    private String innerQuantity;

    @ApiModelProperty(name = "status", value = "状态 1-未接单 2-已发货 3-已收货", dataType = "java.lang.Integer", example = "")
    private Integer status;

    @ApiModelProperty(name = "shippongCost", value = "运费", dataType = "java.lang.BigDecimal", example = "")
    private BigDecimal shippongCost;

    @ApiModelProperty(name = "otherCost", value = "其他费用", dataType = "java.lang.BigDecimal", example = "")
    private BigDecimal otherCost;

    @ApiModelProperty(name = "rate", value = "税率", dataType = "java.lang.BigDecimal", example = "")
    private BigDecimal rate;

    @ApiModelProperty(name = "ratefee", value = "税额", dataType = "java.lang.BigDecimal", example = "")
    private BigDecimal ratefee;

    @ApiModelProperty(name = "totalAmount", value = "合计金额", dataType = "java.lang.BigDecimal", required = true, example = "1")
    private BigDecimal totalAmount;

    @ApiModelProperty(name = "deliveryQuantity", value = "已交付数量", dataType = "java.lang.Long", required = true, example = "1")
    private Long deliveryQuantity;

    @ApiModelProperty(name = "backStatus", value = "售后状态", dataType = "java.lang.Integer", required = true, example = "1")
    private Integer backStatus;

    @ApiModelProperty(name = "backBillNo", value = "退款单号", dataType = "java.lang.String", required = true, example = "1")
    private String backBillNo;

}
